vba中的查找匹配函数

您所在的位置:网站首页 vba 查找指定内容 find 返回整行 vba中的查找匹配函数

vba中的查找匹配函数

2024-07-15 00:44| 来源: 网络整理| 查看: 265

最朴树的find

例子:

Range("G4") = Range("B:B").Find(Range("G3")).Row

解释: Range(“B:B”)表示要查找的位置在第B列 Find(Range(“G3”))表示要查找G3单元格中的值 Row返回查找到的位置的行数

工作表函数Match

例子

Range("A1") = application.WorksheetFunction.Match(Range("G3"), Range("B:B"), 0)

解释: application.WorksheetFunction.Match是函数的完整路径 Match函数的各个参数的说明 match(Lookup_value, Lookup_array , Match_type)。

Lookup_value(需要在表中查找的值) -Lookup_array(可能包含所要查找的值的连续单元格区域,Lookup_array 必须为数组或数组引用)Match_Type(数字 -1、0 或 1。Match_type 指明 Microsoft Excel 如何将 lookup_value 与 lookup_array 中的值进行匹配) 如果 match_type 为 1,函数 MATCH 查找小于或等于 lookup_value 的最大数值。Lookup_array 必须按升序排列:...、-2、-1、0、1、2, ...、A-Z、FALSE、TRUE。 如果 match_type 为 0,函数 MATCH 查找等于 lookup_value 的第一个数值。Lookup_array 可以按任何顺序排列。 如果 match_type 为 -1,函数 MATCH 查找大于或等于 lookup_value 的最小数值。Lookup_array 必须按降序排列:TRUE、FALSE、Z-A、 ...2、 1、 0、 -1、 -2、 ...,等等。 如果省略 match_type,则假设为 1。

此外:

函数 MATCH 返回 lookup_array 中目标值的位置,而不是数值本身。例如,MATCH("b",{"a","b","c"},0) 返回 2,即"b"在数组 {"a","b","c"} 中的相应位置。 匹配文本值时,函数 MATCH 不区分大小写字母。 如果函数 MATCH 未能找到匹配值,则返回错误值 #N/A。 如果 match_type 为 0 且 lookup_value 为文本,则可以在 lookup_value 中使用通配符、问号 (?) 和星号 (*)。问号匹配任意单个字符;星号匹配任意字符序列。如果您要查找实际的问号或星号本身,请在该字符前键入波形符 (~)。 工作表函数vlookup

这个函数比较高大上,适用的地方,比如要查找某个产品型号,返回该型号的单价 这里写图片描述

当然也可以用find进行查找

Mrow = Range("B:B").Find(Range("G3")).Row ' 在 B 列中查找匹配 G3 单元格的行 Range("G4") = Range("D" & Mrow) ' 在 G4 单元格中返回对应行 D 列的数据

用vloookup的话就比较简单:

Range("G4") = Application.WorksheetFunction.VLookup(Range("G3"), Range("B:E"), 3, 0)

这个函数的用法如下: vlookup(lookup_value, table_array, col_index, range_lookup)

Lookup_value - 要在表格数组第一列中搜索的值。Lookup_value 可以为值或引用。如果 lookup_value 小于 table_array 第一列中的最小值,则 VLOOKUP 将返回错误值 #N/A。Table_array - 两列或更多列数据。可以使用对区域或区域名称的引用。table_array 第一列中的值是由 lookup_value 搜索的值。这些值可以是文本、数字或逻辑值。不区分大小写。Col_index_num - table_array 中待返回的匹配值的列号。col_index_num 为 1 时,返回 table_array 第一列中的值;col_index_num 为 2 时,返回 table_array 第二列中的值,依此类推。Range_lookup-一个逻辑值,指定是否希望VLookup方法查找精确匹配还是近似匹配:

其他说明

如果 Range_lookup 为 TRUE 或被省略,则返回精确匹配值或近似匹配值。如果找不到精确匹配值,则返回下一个小于 lookup_value 的最大值。 table_array 第一列中的值必须以升序排序;否则 VLookup 方法可能无法给出正确的值。 如果 Range_lookup 为 FALSE,则VLookup方法将只查找完全匹配。在这种情况下,不需要 table_array 第一列中的值进行排序。如果有两个或多个值 table_array 第一列中的符合 lookup_value,则使用找到的第一个值。如果找不到完全匹配,则生成错误。 如果 range_lookup 为 FALSE,而 lookup_value 为文本,则可以在 lookup_value 中使用通配符,包括问号 (?) 和星号 (*)。问号可匹配任意的单个字符;星号可匹配任意一串字符。如果要查找实际的问号或星号,则请在该字符前键入一个波形符 (~)。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3